Online-Academy
Look, Read, Understand, Apply

Q and A 2025_iii

What is a Stream in Java?

A stream is a sequence of data (bytes or characters) that can be read from or written to.

Difference between InputStream and OutputStream.

InputStream: reads bytes from a source. OutputStream: writes bytes to a destination.

Difference between Reader and Writer classes.

  • Reader: reads character streams.
  • Writer: writes character streams.
  • Difference between byte streams and character streams.

  • Byte streams (InputStream/OutputStream) handle raw bytes.
  • Character streams (Reader/Writer) handle characters and are suitable for text.
  • What are the main subclasses of InputStream and OutputStream?

  • FileInputStream, BufferedInputStream, DataInputStream (InputStream)
  • FileOutputStream, BufferedOutputStream, DataOutputStream (OutputStream)
  • What are the main subclasses of Reader and Writer?

  • FileReader, BufferedReader, InputStreamReader (Reader)
  • FileWriter, BufferedWriter, PrintWriter (Writer)
  • How to read a file using FileInputStream?

    FileInputStream fis = new FileInputStream("file.txt");
    int i;
    while((i = fis.read()) != -1) {
        System.out.print((char)i);
    }
    fis.close();
    

    How to write data using FileOutputStream?

    FileOutputStream fos = new FileOutputStream("file.txt");
    String data = "Hello";
    fos.write(data.getBytes());
    fos.close();
    

    How to read a file using FileReader?

    FileReader fr = new FileReader("file.txt");
    int i;
    while((i = fr.read()) != -1) {
        System.out.print((char)i);
    }
    fr.close();
    

    How to write to a file using FileWriter?

    FileWriter fw = new FileWriter("file.txt");
    fw.write("Hello World");
    fw.close();
    

    What is BufferedInputStream and BufferedOutputStream?

    Streams that buffer input/output to improve performance.

    What is BufferedReader and BufferedWriter?

    Readers/Writers that buffer characters for faster I/O, and allow line-by-line reading/writing.

    Difference between buffered and unbuffered streams.

    Buffered streams use memory buffers for efficiency; unbuffered streams read/write directly.

    What is DataInputStream and DataOutputStream?

    Streams to read/write Java primitive types (int, double, etc.) in a machine-independent way.

    How to use ObjectInputStream and ObjectOutputStream?

    For reading/writing serializable objects
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.dat"));
    oos.writeObject(obj);
    oos.close();

    Difference between FileInputStream and FileReader.

    FileInputStream: byte stream; FileReader: character stream. Use Reader for text files.

    Write purpose of flush() method.

    Ensures buffered data is written to the destination immediately.

    How to close a stream properly?

    Using close() method or try-with-resources to automatically close streams.

    What is the File class?

    Represents file and directory pathnames in Java.

    How to create a new file?

    File file = new File("file.txt");
    file.createNewFile();
    

    How to delete a file?

    File file = new File("file.txt");
    file.delete();
    

    How to check if a file exists?

    File file = new File("file.txt");
    file.exists();
    

    Get file name, path, and length.

    file.getName(); file.getPath(); file.length();

    How to list all files in a directory?

    File dir = new File("folder");
    String[] files = dir.list();
    

    How to create a directory?

    File dir = new File("folder");
    dir.mkdir();
    

    How to check if File is a file or directory?

    file.isFile(); file.isDirectory();

    How to rename a file?

    File oldFile = new File("old.txt");
    File newFile = new File("new.txt");
    oldFile.renameTo(newFile);
    

    How to read file line by line using BufferedReader?

    BufferedReader br = new BufferedReader(new FileReader("file.txt"));
    String line;
    while((line = br.readLine()) != null) {
        System.out.println(line);
    }
    br.close();
    

    How to write to file line by line using BufferedWriter?

    BufferedWriter bw = new BufferedWriter(new FileWriter("file.txt"));
    bw.write("Line1");
    bw.newLine();
    bw.write("Line2");
    bw.close();
    

    How to use Scanner to read data from a file?

    Scanner sc = new Scanner(new File("file.txt"));
    while(sc.hasNextLine()) {
        System.out.println(sc.nextLine());
    }
    sc.close();